Hello!
Feel free to use this Datapack whenever you make a Parkour Map. 
Just before you start, make sure you do these things to ensure a smooth process.

1. Create Scoreboard Objectives

- Booleans and Checks - 

* TimerGoing (Set to 0)
* RankShown (Set to 0)
* checkpointbool (Set to 0)

- Classes - 

* sclass (Set to seconds required to get S class)
* aclass (Set to seconds required to get A class)
* bclass (Set to seconds required to get B class)
* cclass (Set to seconds required to get C class)

- Timer Materials - 

* Timer (Set to 0) (Set display with /scoreboard objectives setdisplay sidebar Timer)
* tick (Set to 0)
* seconds (Set to 0)
* minutes (set to 0)

note - these are caps sensitive, so please use the correct capitalization or else it won't work.

2. Create Teams

* Playing Team
* Winner Team, set the color to gold

3. Insert the Datapack with command blocks

* Under the starting checkpoint, place a command block with the following command

function sheep:timerstart

* At the end checkpoint, place a command block with the following command

function sheep:stoptimer

You should be good to go with the timer!

4. Change other stuff

* Set the lightning's correct coordinates
* Change the titles

5. Set up the time ranking system

* Determine what each class's times will be
* Set the highest time for each class in its scoreboard. For example, if the S class range was from 0 to 5 minutes, you would set its value to 300.
* Do this each class. You don't need to do this with D class since It has no highest value.

6. Get to know the data pack!

* Place pressure plates to make checkpoints
* Saturation and Regeneration pre-provided

You can use this for free, but it would be appreciated if you credited me as making the Datapack.
Thanks, 

        Teddyishappyl